using System;
using System.Collections.Generic;

namespace RBAC.Domain.Dto.Output
{
    /// <summary>
    /// 销售订单详情DTO
    /// </summary>
    public class SalesOrderDetailDto
    {
        /// <summary>
        /// 销售订单主信息
        /// </summary>
        public SalesOrderDto SalesOrder { get; set; } = new SalesOrderDto();

        /// <summary>
        /// 销售订单明细列表
        /// </summary>
        public List<SalesOrderDetailItemDto> Details { get; set; } = new List<SalesOrderDetailItemDto>();
    }

    /// <summary>
    /// 销售订单明细项DTO
    /// </summary>
    public class SalesOrderDetailItemDto
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 序号
        /// </summary>
        public int SerialNo { get; set; }

        /// <summary>
        /// 物料ID
        /// </summary>
        public long MaterId { get; set; }

        /// <summary>
        /// 物料编码
        /// </summary>
        public string? MaterCode { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        public string? MaterName { get; set; }

        /// <summary>
        /// 型号规格
        /// </summary>
        public string? ModelSpec { get; set; }

        /// <summary>
        /// 主计量
        /// </summary>
        public string? Unit { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        public int? Num { get; set; }

        /// <summary>
        /// 单价
        /// </summary>
        public decimal? Price { get; set; }

        /// <summary>
        /// 金额
        /// </summary>
        public decimal? Amount { get; set; }

        /// <summary>
        /// 备注信息
        /// </summary>
        public string? Remark { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string CreateUser { get; set; }
    }
}
